const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
  // 设置打包模式 
  mode:'development',

	optimization: {
		minimize: false, // 关闭代码压缩，可选
  },
  
	// 指定入口文件
  entry: './src/index.ts',
  
	// devtool: 'inline-source-map',
	// devServer: {
	// 	contentBase: './dist',
	// },

	// 指定打包文件所在目录
	output: {
		// 指定打包后的文件目录
		path: path.resolve(__dirname, 'dist'),
		// 指定打包后的文件
    filename: 'bundle.js',
    
		environment: {
			arrowFunction: false, // 关闭webpack的箭头函数，可选
		},
  },
  
  // 设置可以引用的模块文件，默认不支持引用.ts文件模块
	resolve: {
		extensions: ['.ts', '.js'],
  },

  // 指定webpack打包时要使用的模块 
  module: {
    // 指定加载规则
		rules: [
      {
        // 指定规则生效的文件
        test: /\.ts$/,

        // 要使用的loader，执行顺序是从后往前
        use: [
          // 配置babel
          /* {
            loader: "babel-loader",
            options: {
              // 设置预定义的环境
              presets: [
                ["@babel/preset-env",
                {
                  // 指定需要兼容的浏览器版本
                  "targets": { "chrome": "58" },
                  // 指定corejs版本
                  "corejs": "3",
                  // 使用corejs的方式，"usage" 表示按需加载
                  "useBuiltIns":"usage"
                  
                }]
              ]
            }
          }, */
          'ts-loader'
        ],

        // 不需要编译的文件
				exclude: /node_modules/,
			},
		],
	},
	plugins: [
		new CleanWebpackPlugin(),
    new HtmlWebpackPlugin({
      // 自定义html文件标题
      // title: 'TS测试',
      // html文件模板
      // template:'./src/index.html'
      
		}),
	],
};
